package co.yixiang.modules.rabbitMq;

import org.springframework.amqp.core.AmqpTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import javax.annotation.PostConstruct;

//@Component
public class MqUtils {

	private static MqUtils mqUtils;

//	@Autowired
	private AmqpTemplate rabbitTemplate;

//	@PostConstruct
	public void init() {
		mqUtils = this;
	}

	/**
	 * 发送队列消息
	 * @param data 发送消息数据
	 * @param queueName 队列名 {@link co.yixiang.modules.rabbitMq.constant.QueueConstants}
	 * @param <T> 消息数据类型
	 */
	public static <T> void convertAndSend(String queueName, T data) {
		mqUtils.rabbitTemplate.convertAndSend(queueName, data);
	}

	/**
	 * 发送队列消息
	 * @param data 发送消息数据
	 * @param queueName 队列名 {@link co.yixiang.modules.rabbitMq.constant.QueueConstants}
	 */
	public static void convertAndSend(String queueName, String data) {
		mqUtils.rabbitTemplate.convertAndSend(queueName, data);
	}

}
